# 求出类别为Sports的游戏在北美、欧洲、日本和其他地区的销售总额
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt

def topic_6(data:pd.DataFrame):
    # 设置绘图风格
    plt.style.use("ggplot")

    # 设置中文显示支持
    plt.rcParams['font.family'] = 'sans-serif'
    plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS']
    plt.rcParams["axes.unicode_minus"] = False

    # 去除重复数据
    data.drop_duplicates(inplace=True)

    # 汇总各个平台的销售额
    platform_sales = data[['Platform', 'Global_Sales']]
    platform_sales = platform_sales.groupby('Platform').sum()
    platform_sales.sort_values(by=['Global_Sales'], ascending=True, inplace=True)
    fig = plt.figure(figsize=(12, 8))

    # 设置饼图参数
    explode = [0.1] * len(platform_sales)
    colors = ['r', 'g', 'b', 'y']  # 饼图内部字体颜色列表

    # 绘制3D饼图
    wedges, texts, autotexts = plt.pie(platform_sales['Global_Sales'].values, labels=platform_sales.index,
                                       explode=explode, autopct='%1.1f%%', startangle=90, pctdistance=0.85)  # 修改颜色为红色

    # 自定义标签颜色和大小
    for text, autotext, color in zip(texts, autotexts, colors):
        text.set(size='x-small', color='black')  # 设置标签字体颜色和大小
        autotext.set(size='x-small', color=color)  # 设置饼图内部字体颜色和大小

    # 设置图表标题
    plt.title('各个平台销售额占比')
    # 添加图例
    plt.legend(platform_sales.index, loc='upper left', fontsize=6)  # 设置图例的位置和字体大小

    # 保存图像
    plt.savefig('./static/img/topic_6.jpg')

    # 显示图表
    plt.show()
